AWS Transfer Family로 리전 간 장애 대응을 할 수 있을까?
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS Transfer Family로 리전 간 장애 대응을 할 수 있는지 조사해 봤습니다.
다른 리전으로 백업 혹은 복사?
A 리전에서 재해가 발생하여 B 리전에서 서비스를 지속해야 할 경우 AWS Transfer Family에서는 어떻게 대응해야 할까요? EC2 인스턴스의 경우 AWS Backup을 이용하여 B 리전에 백업을 해두어 재해 발생 시 복원을 통해 서비스를 지속할 수 있지만, AWS Transfer Family에서도 이러한 대응이 가능할까요?
AWS 공식 문서를 살펴보면, AWS Transfer Family는 최대 3개의 가용 영역을 지원한다고 설명하고 있습니다. 하지만 AWS Transfer Family는 완전 관리형 서비스로 이러한 가용 영역은 사용자가 직접 지정할 수 없으며 AWS에서 전부 관리하게 됩니다.
하지만, 가용 영역에 대한 지원은 하고 있지만, 다중 리전은 AWS Transfer Family에서 지원하고 있지 않습니다.
어떻게 구현해야 할까?
생각되는 최적의 방법은 각각의 리전마다 AWS Transfer Family를 생성하여 관리하는 방법이 최적의 방법이지 않을까 생각합니다. Amazon EC2 처럼 AWS Backup과 같은 서비스를 이용하여 AMI, 스냅샷을 다른 리전으로 복사하는 것은 AWS Transfer Family에서는 불가능하기 때문에 AWS Transfer Family의 리전 간 장애 대응은 각각의 리전에 AWS Transfer Family를 생성하는 것이 베스트라고 생각됩니다. 하지만, 이러한 방법은 몇 가지 단점이 존재하는데, 각 리전마다 서비스를 생성해야 하기 때문에 단일 리전으로 운영할 때 보다 많은 비용이 청구된다는 점과 생성한 사용자를 동기화할 수 없기 때문에 각 리전별로 사용자를 생성하여 직접 관리해야 한다는 단점이 존재합니다.
데이터 백업은?
AWS Transfer Family를 두 리전에 생성한다면, 데이터 백업은 어떻게 해야 할까요? AWS Transfer Family에서는 Amazon S3, Amazon EFS 두 가지 스토리지 서비스를 선택할 수 있습니다.
Amazon S3의 경우 각 리전 별로 Amazon S3를 생성하여 지역 간 객체 복제 기능으로 다른 AWS 리전에 데이터를 백업할 수 있습니다.
Amazon EFS에서 레플리케이션을 활성화 하여、다른 AWS 리전에 Amazon EFS가 자동적으로 생성되게 하여 Active-Standby 환경을 구성할 수 있습니다.
Amazon S3로 데이터 복제
그렇다면 도쿄 리전에서 A 사용자가 업로드한 파일을 버지니아의 B 사용자가 다운로드하여 사용할 수 있을까요?
먼저 도쿄 리전에서 A 사용자가 파일을 업로드한 상태입니다.
버지니아 리전의 Amazon S3 버킷 내부를 확인해 보면 데이터는 문제없이 복제된 상태입니다.
FTP, SFTP 전송 소프트웨어를 통해 접속하여 확인해 보면, 버지니아 리전의 Aamzon S3 버킷 내부 파일을 확인할 수 있습니다.
성공적으로 다운로드할 수 있었습니다.
어떤 사용자가 업로드했건 상관없이, 버킷 내부를 조작할 권한이 B 사용자에게 있는지의 여부가 중요한 듯하며 누가 어떤 리전에서 어떤 사용자가 업로드 했는지는 중요하지 않은 것 같습니다.
이러한 리전 간 장애 대응을 위한 DR 환경 구성은 현재 얼마만큼의 RPO, RTO를 요구하고 있는지 파악하는 것이 가장 중요하며, 이에 따라 여러 DR 환경 구성 패턴을 분석해 보고 가장 적합한 패턴을 채택하는 게 좋을 것 같습니다. 각 패턴에 따라 DR 환경의 요금은 달라지기 때문에 요금에 대한 부분도 꼼꼼히 살펴보는 것이 중요합니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.